﻿using System;

namespace Infrastructure.Utility.Core.Extensions
{
    public static class DateTimeStringExtension
    {
        /// <summary>
        /// 是否日期字符串（true:是日期，false：不是日期）
        /// </summary>
        /// <param name="datetimeStr"></param>
        /// <returns></returns>
        public static bool IsDateTime(this string datetimeStr)
        {
            return !string.IsNullOrWhiteSpace(datetimeStr) && DateTime.TryParse(datetimeStr, out _);
        }

        /// <summary>
        /// 截断当天日期（返回字符串格式：yyyy-MM-dd）
        /// </summary>
        /// <param name="datetimeStr">yyyy-mm-dd hh:mm:ss</param>
        /// <returns>返回yyyy-MM-dd字符串</returns>
        public static string TruncateDate(this string datetimeStr)
        {
            if (string.IsNullOrWhiteSpace(datetimeStr))
            {
                return string.Empty;
            }
            var isDate = DateTime.TryParse(datetimeStr, out var datetime);
            return !isDate ? string.Empty : datetime.ToString("yyyy-MM-dd");
        }

        /// <summary>
        /// 获取下一天的日期（返回字符串格式：yyyy-MM-dd）
        /// </summary>
        /// <param name="datetimeStr"></param>
        /// <returns>返回下一天的yyyy-MM-dd字符串</returns>
        public static string NextDay(this string datetimeStr)
        {
            if (string.IsNullOrWhiteSpace(datetimeStr))
            {
                return string.Empty;
            }
            var isDate = DateTime.TryParse(datetimeStr, out var datetime);
            return !isDate ? string.Empty : datetime.AddDays(1).ToString("yyyy-MM-dd");
        }
    }
}
